/* eslint-disable */
/**
 * 本文件由工具自动生成，请勿随意改动！！！
 * @name CMP Devops API
 * @description The API definition for the Devops Console of Cloud Manage Platform.
 * @tutorial public/ts-admin.yaml
 */
import api from "@api/api";
import http from "@utils/ajax"; // 调用src/utils/ajax/index.js
import { awaitWrap } from "../../scripts/api/fetch";
import UserData from "@data/user";
import MenuData from "@data/menus";

//假设登录请求
export const LoginApi = async params => {
  //return awaitWrap(http.post(api.login_api, params));
  const user = UserData.users.find(
    item => item.username === params.username && item.password === params.password
  );
  if (user) {
    user.menus = MenuData.menus;
    user.permissions = MenuData.MenuData;
    return [
      null,
      {
        code: 200,
        rows: {
          token: user.token,
          user: user
        }
      }
    ];
  }
  return [
    {
      code: 500,
      message: "登录名或密码错误"
    },
    null
  ];
};

/**
 * 查询ETL数据维护设置
 * @param { Array } params 请求参数
 */
export const queryETLConfigType = async params => {
  // send request
  return awaitWrap(http.post(api.config_queryetlconfigtype, params));
};

/**
 * 查询校历数据列表
 */
export const queryData = async params => {
  // send request
  return awaitWrap(http.post(api.data_query, params));
};

/**
 * 查询校历数据列表
 */
export const queryPhotoData = async params => {
  // send request
  return awaitWrap(http.post(api.data_queryPhoto, params));
};

/**
 * 获取人员数据列表
 */
export const queryStaffData = async params => {
  // send request
  return awaitWrap(http.post(api.data_queryStaff, params));
};

/**
 * 保存学校配置信息，包括新增和修改
 * @param { Object } params 请求参数
 * @param { String } params['schoolCode'] 学校代码
 * @param { Integer } params['schoolType'] 学校类型。1：新私有云平台；2：校端云平台
 * @param { String } params['schoolName'] 学校名称
 */
export const saveSchool = async params => {
  // send request
  return awaitWrap(http.post(api.school_saveschool, params));
};

/**
 * 获取公有云数据列表
 */
export const queryPublicApp = async params => {
  // send request
  return awaitWrap(http.post(api.query_publicApp, params));
};

/**
 * 使用cropper上传图片
 */
export const cropperUpload = async params => {
  // send request
  return awaitWrap(http.post(api.query_publicApp, params));
};

/**
 * 根据dubbo接口获取所有学校，初始化下拉学校列表,使用get()请求
 * @param { Object } params 请求参数
 * @param { String } params['searchKey']
 */
export const initAllSchool = async params => {
  // send request
  return awaitWrap(http.get(api.school_initallschool, params));
};

/**
 * 获取某个字典的详情
 * @param { Object } params 请求参数
 * @param { String } params['dictName'] 字典名称
 * @param { Integer } params['pageNumber'] 分页页码
 * @param { Integer } params['pageSize'] 分页大小
 * @param { String } params['keyword'] 搜索关键字，只搜索名称和编号
 */
export const getWhole = async params => {
  // send request
  return awaitWrap(http.post(api.dict_getwhole, params));
};

/**
 * 获取树形结构的数据，分级加载
 * @param { Object } params 请求参数
 * @param { String } params['objectName'] 模型名称
 * @param { Integer } params['pid'] 父节点ID，如果是第一级，则该字段为空
 */
export const getTreeData = async params => {
  // send request
  return awaitWrap(http.post(api.data_gettreedata, params));
};

/**
 * 一次性查询所有的数据
 * @param { Object } params 请求参数
 */
export const getVirtualTreeData = async params => {
  // send request
  return awaitWrap(http.post(api.data_getvirtualtreedata, params));
};

/**
 * 新增基础数据
 * @param { Object } params 请求参数
 * @param { String } params['type'] 模型对象
 * @param { String } params['attributes'] 属性的JSON串格式，需要Base64编码
 */
export const addData = async params => {
  // send request
  return awaitWrap(http.post(api.data_add, params));
};

/**
 * 修改基础数据
 * @param { Object } params 请求参数
 * @param { String } params['type'] 模型对象
 * @param { Integer } params['id'] 需要修改数据的WID
 * @param { String } params['attributes'] 属性的JSON串格式
 */
export const updateData = async params => {
  // send request
  return awaitWrap(http.post(api.data_update, params));
};

/**
 * 删除基础数据
 * @param { Object } params 请求参数
 * @param { String } params['type'] 模型对象
 * @param { Array } params['ids']
 * @param { String } params['criteria'] 传入的是一个JSON格式的字符串，使用Base64编码
 */
export const deleteData = async params => {
  // send request
  return awaitWrap(http.post(api.data_delete, params));
};

/**
 * 获取当前租户的状态
 * @param { Array } params 请求参数
 */
export const getSchoolStatus = async params => {
  // send request
  return awaitWrap(http.get(api.config_getschoolstatus, params));
};

/**
 * 设置当前租户的状态
 * @param { Object } params 请求参数
 * @param { Integer } params['schoolId'] 租户ID
 * @param { String } params['schoolCode'] 租户编码
 * @param { Boolean } params['status'] 当前状态 true 开启，false 关闭
 */
export const setSchoolStatus = async params => {
  // send request
  return awaitWrap(http.post(api.config_setschoolstatus, params));
};
